SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[pacalcularantiguedadaprox2] 

--Calcula la antiguedad aproximada de un docente sin tener en cuenta solapamientos

@Agente int,
@Desde datetime,   --ojo!!! fechita fechota
@Hasta datetime,
@Antiguedad float output

as
SET NOCOUNT ON
set dateformat dmy

declare @PA datetime
declare @PB datetime
declare @FA datetime
declare @FB datetime
declare @Baja varchar(1)
declare @Licencia int
declare @Resultado float


 IF OBJECT_ID('tempdb..#calculo') IS NOT NULL 
	  DROP TABLE #calculo

CREATE TABLE #calculo(fechaalta datetime,fechabaja datetime,baja varchar(1),licencia int)
insert into #calculo 
Select ss.FechaAlta, isnull(ss.FechaBaja,getdate()), ss.Baja,isnull(Licencia,0) from tb_SubserviciosAgentes ss, tb_ServiciosAgentes s
where s.agente = @Agente and  (ss.FechaBaja Is Null or ss.FechaBaja>=@Desde) and ss.FechaAlta<=@Hasta 
and s.idServicioAgente = ss.ServicioAgente
union
SELECT isnull(fechaalta,@desde),isnull(fechabaja,getdate()),isnull(baja,'S'),0 FROM tb_Servicioshistoricos where idagente=@agente
Order by 1,2

declare Subservicios cursor  forward_only  for
SELECT * FROM #calculo



Select @PA = @Desde, @PB=@Desde, @Resultado=0

OPEN SubServicios

fetch next from SubServicios into @FA, @FB, @Baja,@Licencia
Select @Resultado=0
while @@fetch_status = 0
begin
	if (Select CuentaAntGral from tb_Licencias where idLicencia = @Licencia) = 'S' Or (Select CuentaAntGral from tb_Licencias where idLicencia = @Licencia) Is Null or @licencia=0
		begin
		if @baja = 'N' or @FB > @Hasta
			Select @FB = @Hasta
		if @FA>@PB
			begin
			Select @Resultado=@Resultado+(datediff(day,@PA,@PB))
			Select @PA=@FA,@PB=@FB
			end
		else
			begin
			if @FB>@PB
				Select @PB = @FB
			end
		end
	
	fetch next from SubServicios into @FA, @FB, @Baja,@Licencia
end

close SubServicios
deallocate SubServicios

select @resultado = @resultado+(datediff(day, @PA,@PB))
select @antiguedad=@resultado/365


return @antiguedad
GO
